Rev 1792 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1792 | Rev 9754 | ||
---|---|---|---|
1 | ;--------------------------------------------------------------------- |
1 | ;--------------------------------------------------------------------- |
2 | delete_file: |
2 | delete_file: |
3 | ; call progress_bar |
3 | ; call progress_bar |
4 | ; jmp still |
4 | ; jmp still |
5 | mov [confirmation_type],delete_type |
5 | mov [confirmation_type],delete_type |
6 | call confirmation_action |
6 | call confirmation_action |
7 | cmp [work_confirmation_yes],1 |
7 | cmp [work_confirmation_yes],1 |
8 | jne red ;reload_dir |
8 | jne red ;reload_dir |
9 | 9 | ||
10 | xor eax,eax |
10 | xor eax,eax |
11 | mov [files_counter],eax |
11 | mov [files_counter],eax |
12 | mov [directories_counter],eax |
12 | mov [directories_counter],eax |
13 | mov [files_size.low],eax |
13 | mov [files_size.low],eax |
14 | mov [files_size.high],eax |
14 | mov [files_size.high],eax |
15 | call get_files_information |
15 | call get_files_information |
16 | 16 | ||
17 | call delete_marked_files |
17 | call delete_marked_files |
18 | cmp [delete_marked_yes],1 |
18 | cmp [delete_marked_yes],1 |
19 | je .end_1 ;reload_dir_all |
19 | je .end_1 ;reload_dir_all |
20 | 20 | ||
21 | xor eax,eax |
21 | xor eax,eax |
22 | xor edx,edx |
22 | xor edx,edx |
23 | cmp [select_panel_counter],0 |
23 | cmp [select_panel_counter],0 |
24 | jne .right_1 |
24 | jne .right_1 |
25 | mov ax,[left_start_draw_cursor_line] |
25 | mov ax,[left_start_draw_cursor_line] |
26 | mov ebx,10 |
26 | mov ebx,10 |
27 | div ebx |
27 | div ebx |
28 | mov ebx,[left_start_draw_line] |
28 | mov ebx,[left_start_draw_line] |
29 | add ebx,eax |
29 | add ebx,eax |
30 | imul ebx,304 |
30 | imul ebx,304 |
31 | add ebx,[left_folder_data] |
31 | add ebx,[left_folder_data] |
32 | call prepare_data_7 |
32 | call prepare_data_7 |
33 | mov esi,read_folder_name ;read_folder.name |
33 | mov esi,read_folder_name ;read_folder.name |
34 | jmp .end |
34 | jmp .end |
35 | .right_1: |
35 | .right_1: |
36 | mov ax,[right_start_draw_cursor_line] |
36 | mov ax,[right_start_draw_cursor_line] |
37 | mov ebx,10 |
37 | mov ebx,10 |
38 | div ebx |
38 | div ebx |
39 | mov ebx,[right_start_draw_line] |
39 | mov ebx,[right_start_draw_line] |
40 | add ebx,eax |
40 | add ebx,eax |
41 | imul ebx,304 |
41 | imul ebx,304 |
42 | add ebx,[right_folder_data] |
42 | add ebx,[right_folder_data] |
43 | call prepare_data_7 |
43 | call prepare_data_7 |
44 | mov esi,read_folder_1_name ;read_folder_1.name |
44 | mov esi,read_folder_1_name ;read_folder_1.name |
45 | .end: |
45 | .end: |
46 | mov [error_pointer],ebx |
46 | mov [error_pointer],ebx |
47 | mov edi,file_name ;delete_file_data.name |
47 | mov edi,file_name ;delete_file_data.name |
48 | call copy_path_1 |
48 | call copy_path_1 |
49 | test [ebx-40],byte 0x10 |
49 | test [ebx-40],byte 0x10 |
50 | jz @f |
50 | jz @f |
51 | push eax ebx |
51 | push eax ebx |
52 | xor eax,eax |
52 | xor eax,eax |
53 | mov [current_progress_value],eax |
53 | mov [current_progress_value],eax |
54 | ; mov [delete_marked_yes],al |
54 | ; mov [delete_marked_yes],al |
55 | mov [draw_all_progressbar],1 |
55 | mov [draw_all_progressbar],1 |
56 | call delete_dir |
56 | call delete_dir |
57 | pop ebx eax |
57 | pop ebx eax |
58 | jmp .end_1 |
58 | jmp .end_1 |
59 | @@: |
59 | @@: |
60 | call del_file |
60 | call del_file |
61 | test eax,eax |
61 | test eax,eax |
62 | jz .end_1 |
62 | jz .end_1 |
63 | call start_error_window_thread |
63 | call start_error_window_thread |
64 | jmp reload_dir_all |
64 | jmp reload_dir_all |
65 | .end_1: |
65 | .end_1: |
66 | cmp [select_panel_counter],0 |
66 | cmp [select_panel_counter],0 |
67 | jne .right |
67 | jne .right |
68 | call proc_read_left_folder |
68 | call proc_read_left_folder |
69 | jmp red |
69 | jmp red |
70 | .right: |
70 | .right: |
71 | call proc_read_right_folder |
71 | call proc_read_right_folder |
72 | jmp red |
72 | jmp red |
73 | ;--------------------------------------------------------------------- |
73 | ;--------------------------------------------------------------------- |
74 | delete_marked_files: |
74 | delete_marked_files: |
75 | mov eax,[directories_counter] |
75 | mov eax,[directories_counter] |
76 | add eax,[files_counter] |
76 | add eax,[files_counter] |
77 | mov [max_progress_value],eax |
77 | mov [max_progress_value],eax |
78 | 78 | ||
79 | xor eax,eax |
79 | xor eax,eax |
80 | mov [current_progress_value],eax |
80 | mov [current_progress_value],eax |
81 | mov [delete_marked_yes],al |
81 | mov [delete_marked_yes],al |
82 | mov [draw_all_progressbar],1 |
82 | mov [draw_all_progressbar],1 |
83 | 83 | ||
84 | cmp [select_panel_counter],al |
84 | cmp [select_panel_counter],al |
85 | jne .right_1 |
85 | jne .right_1 |
86 | ; mov eax,[left_marked_counter] |
86 | ; mov eax,[left_marked_counter] |
87 | ; mov [max_progress_value],eax |
87 | ; mov [max_progress_value],eax |
88 | mov ebp,[left_folder_block] |
88 | mov ebp,[left_folder_block] |
89 | .start: |
89 | .start: |
90 | mov ebx,ebp |
90 | mov ebx,ebp |
91 | dec ebx |
91 | dec ebx |
92 | imul ebx,304 |
92 | imul ebx,304 |
93 | add ebx,[left_folder_data] |
93 | add ebx,[left_folder_data] |
94 | add ebx,32+40 |
94 | add ebx,32+40 |
95 | cmp [ebx+299-40],byte 0 |
95 | cmp [ebx+299-40],byte 0 |
96 | je @f |
96 | je @f |
97 | cmp [ebx],word '..' |
97 | cmp [ebx],word '..' |
98 | jne .continue |
98 | jne .continue |
99 | cmp [ebx+2],byte 0 |
99 | cmp [ebx+2],byte 0 |
100 | je .continue_1 |
100 | je .continue_1 |
101 | .continue: |
101 | .continue: |
102 | mov esi,read_folder_name ;read_folder.name |
102 | mov esi,read_folder_name ;read_folder.name |
103 | call prepare_data_6 |
103 | call prepare_data_6 |
104 | .continue_1: |
104 | .continue_1: |
105 | mov [delete_marked_yes],1 |
105 | mov [delete_marked_yes],1 |
106 | @@: |
106 | @@: |
107 | dec ebp |
107 | dec ebp |
108 | jnz .start |
108 | jnz .start |
109 | cmp [delete_marked_yes],0 |
109 | cmp [delete_marked_yes],0 |
110 | je @f |
110 | je @f |
111 | mov [left_start_draw_cursor_line],0 |
111 | mov [left_start_draw_cursor_line],0 |
112 | @@: |
112 | @@: |
113 | ret |
113 | ret |
114 | .right_1: |
114 | .right_1: |
115 | ; mov eax,[right_marked_counter] |
115 | ; mov eax,[right_marked_counter] |
116 | ; mov [max_progress_value],eax |
116 | ; mov [max_progress_value],eax |
117 | mov ebp,[right_folder_block] |
117 | mov ebp,[right_folder_block] |
118 | .start_1: |
118 | .start_1: |
119 | mov ebx,ebp |
119 | mov ebx,ebp |
120 | dec ebx |
120 | dec ebx |
121 | imul ebx,304 |
121 | imul ebx,304 |
122 | add ebx,[right_folder_data] |
122 | add ebx,[right_folder_data] |
123 | add ebx,32+40 |
123 | add ebx,32+40 |
124 | cmp [ebx+299-40],byte 0 |
124 | cmp [ebx+299-40],byte 0 |
125 | je @f |
125 | je @f |
126 | cmp [ebx],word '..' |
126 | cmp [ebx],word '..' |
127 | jne .continue_2 |
127 | jne .continue_2 |
128 | cmp [ebx+2],byte 0 |
128 | cmp [ebx+2],byte 0 |
129 | je .continue_3 |
129 | je .continue_3 |
130 | .continue_2: |
130 | .continue_2: |
131 | mov esi,read_folder_1_name ;read_folder_1.name |
131 | mov esi,read_folder_1_name ;read_folder_1.name |
132 | call prepare_data_6 |
132 | call prepare_data_6 |
133 | .continue_3: |
133 | .continue_3: |
134 | mov [delete_marked_yes],1 |
134 | mov [delete_marked_yes],1 |
135 | @@: |
135 | @@: |
136 | dec ebp |
136 | dec ebp |
137 | jnz .start_1 |
137 | jnz .start_1 |
138 | cmp [delete_marked_yes],0 |
138 | cmp [delete_marked_yes],0 |
139 | je @f |
139 | je @f |
140 | mov [right_start_draw_cursor_line],0 |
140 | mov [right_start_draw_cursor_line],0 |
141 | @@: |
141 | @@: |
142 | ret |
142 | ret |
143 | ;--------------------------------------------------------------------- |
143 | ;--------------------------------------------------------------------- |
144 | prepare_data_6: |
144 | prepare_data_6: |
145 | mov [error_pointer],ebx |
145 | mov [error_pointer],ebx |
146 | mov edi,file_name ;delete_file_data.name |
146 | mov edi,file_name ;delete_file_data.name |
147 | call copy_path_1 |
147 | call copy_path_1 |
148 | ; inc [current_progress_value] |
148 | ; inc [current_progress_value] |
149 | ; call progress_bar_delete |
149 | ; call progress_bar_delete |
150 | test [ebx-40],byte 0x10 |
150 | test [ebx-40],byte 0x10 |
151 | jz @f |
151 | jz @f |
152 | call delete_dir |
152 | call delete_dir |
153 | jmp .continue |
153 | jmp .continue |
154 | @@: |
154 | @@: |
155 | inc [current_progress_value] |
155 | inc [current_progress_value] |
156 | call progress_bar_delete |
156 | call progress_bar_delete |
157 | call del_file |
157 | call del_file |
158 | test eax,eax |
158 | test eax,eax |
159 | jz .continue ; .continue_1 |
159 | jz .continue ; .continue_1 |
160 | call start_error_window_thread |
160 | call start_error_window_thread |
161 | add esp,8 |
161 | add esp,8 |
162 | .continue: |
162 | .continue: |
163 | ret |
163 | ret |
164 | ;--------------------------------------------------------------------- |
164 | ;--------------------------------------------------------------------- |
165 | prepare_data_7: |
165 | prepare_data_7: |
166 | add ebx,32+40 |
166 | add ebx,32+40 |
167 | cmp [ebx],word '..' |
167 | cmp [ebx],word '..' |
168 | jne .continue |
168 | jne .continue |
169 | cmp [ebx+2],byte 0 |
169 | cmp [ebx+2],byte 0 |
170 | jne .continue |
170 | jne .continue |
171 | add esp,4 |
171 | add esp,4 |
172 | jmp reload_dir |
172 | jmp reload_dir |
173 | .continue: |
173 | .continue: |
174 | ret |
174 | ret |
175 | ;--------------------------------------------------------------------- |
175 | ;--------------------------------------------------------------------- |
176 | delete_dir: |
176 | delete_dir: |
177 | pusha |
177 | pusha |
178 | mov [recursive_pointer],0 |
178 | mov [recursive_pointer],0 |
179 | mov eax,[appl_memory] |
179 | mov eax,[appl_memory] |
180 | mov [appl_memory_old],eax |
180 | mov [appl_memory_old],eax |
181 | .1: |
181 | .1: |
182 | mov [read_delete_dir_data.size],0 |
182 | mov [read_delete_dir_data.size],0 |
183 | mov [read_delete_dir_data.return],delete_dir_data |
183 | mov [read_delete_dir_data.return],delete_dir_data |
184 | call read_delete_dir |
184 | call read_delete_dir |
185 | test eax,eax |
185 | test eax,eax |
186 | jz @f |
186 | jz @f |
187 | mov [error_pointer],file_name |
187 | mov [error_pointer],file_name |
188 | call start_error_window_thread |
188 | call start_error_window_thread |
189 | popa |
189 | popa |
190 | add esp,8+4 |
190 | add esp,8+4 |
191 | ret |
191 | jmp still |
192 | @@: |
192 | @@: |
193 | mov eax,[delete_dir_data+8] |
193 | mov eax,[delete_dir_data+8] |
194 | cmp eax,2 |
194 | test eax,eax |
195 | ja @f |
195 | jnz @f |
196 | inc [current_progress_value] |
196 | inc [current_progress_value] |
197 | call progress_bar_delete |
197 | call progress_bar_delete |
198 | call del_file |
198 | call del_file |
199 | test eax,eax |
199 | test eax,eax |
200 | jz .end |
200 | jz .end |
201 | mov [error_pointer],file_name |
201 | mov [error_pointer],file_name |
202 | call start_error_window_thread |
202 | call start_error_window_thread |
203 | popa |
203 | popa |
204 | add esp,8+4 |
204 | add esp,8+4 |
205 | ret |
205 | jmp still |
206 | @@: |
206 | @@: |
207 | imul eax,304 |
207 | imul eax,304 |
208 | add eax,32 |
208 | add eax,32 |
209 | mov ebx,eax |
209 | mov ebx,eax |
210 | add ebx,[appl_memory_old] |
210 | add ebx,[appl_memory_old] |
211 | cmp ebx,[appl_memory] |
211 | cmp ebx,[appl_memory] |
212 | jbe @f |
212 | jbe @f |
213 | mov ecx,[appl_memory] |
213 | mov ecx,[appl_memory] |
214 | mov ecx,ebx |
214 | mov ecx,ebx |
215 | mov [appl_memory],ecx |
215 | mov [appl_memory],ecx |
216 | mcall 64,1 |
216 | mcall 64,1 |
217 | @@: |
217 | @@: |
218 | mov eax,[delete_dir_data+8] |
218 | mov eax,[delete_dir_data+8] |
219 | mov [read_delete_dir_data.size],eax |
219 | mov [read_delete_dir_data.size],eax |
220 | mov eax,[appl_memory_old] |
220 | mov eax,[appl_memory_old] |
221 | mov [read_delete_dir_data.return],eax |
221 | mov [read_delete_dir_data.return],eax |
222 | call read_delete_dir |
222 | call read_delete_dir |
223 | test eax,eax |
223 | test eax,eax |
224 | jz @f |
224 | jz @f |
225 | mov [error_pointer],file_name |
225 | mov [error_pointer],file_name |
226 | call start_error_window_thread |
226 | call start_error_window_thread |
227 | popa |
227 | popa |
228 | add esp,8+4 |
228 | add esp,8+4 |
229 | ret |
229 | jmp still |
230 | @@: |
230 | @@: |
231 | call delete_dir_1 |
231 | call delete_dir_1 |
232 | jc .1 |
232 | jc .1 |
233 | .end: |
233 | .end: |
234 | call return_delete_path |
234 | call return_delete_path |
235 | dec [recursive_pointer] |
235 | dec [recursive_pointer] |
236 | cmp [recursive_pointer],0 |
236 | cmp [recursive_pointer],0 |
237 | jge .1 |
237 | jge .1 |
238 | @@: |
238 | @@: |
239 | mov ecx,[appl_memory_old] |
239 | mov ecx,[appl_memory_old] |
240 | cmp [appl_memory],ecx |
240 | cmp [appl_memory],ecx |
241 | je @f |
241 | je @f |
242 | mov [appl_memory],ecx |
242 | mov [appl_memory],ecx |
243 | mcall 64,1 |
243 | mcall 64,1 |
244 | @@: |
244 | @@: |
245 | popa |
245 | popa |
246 | ret |
246 | ret |
247 | ;--------------------------------------------------------------------- |
247 | ;--------------------------------------------------------------------- |
248 | delete_dir_1: |
248 | delete_dir_1: |
249 | mov ebp,[appl_memory_old] |
249 | mov ebp,[appl_memory_old] |
250 | mov ebp,[ebp+8] |
250 | mov ebp,[ebp+8] |
251 | .start: |
251 | .start: |
- | 252 | test ebp,ebp |
|
- | 253 | jz .continue_4 |
|
252 | mov ebx,ebp |
254 | mov ebx,ebp |
253 | dec ebx |
255 | dec ebx |
254 | imul ebx,304 |
256 | imul ebx,304 |
255 | add ebx,[appl_memory_old] |
257 | add ebx,[appl_memory_old] |
256 | add ebx,32+40 |
258 | add ebx,32+40 |
257 | cmp [ebx],byte '.' |
259 | cmp [ebx],byte '.' |
258 | jne @f |
260 | jne @f |
259 | cmp [ebx+1],byte 0 |
261 | cmp [ebx+1],byte 0 |
260 | je .continue_4 |
262 | je .continue_4 |
261 | @@: |
263 | @@: |
262 | cmp [ebx],word '..' |
264 | cmp [ebx],word '..' |
263 | jne .continue |
265 | jne .continue |
264 | cmp [ebx+2],byte 0 |
266 | cmp [ebx+2],byte 0 |
265 | je .continue_4 |
267 | je .continue_4 |
266 | .continue: |
268 | .continue: |
267 | mov esi,file_name |
269 | mov esi,file_name |
268 | inc [recursive_pointer] |
270 | inc [recursive_pointer] |
269 | call copy_path_2 |
271 | call copy_path_2 |
270 | test [ebx-40],byte 0x10 |
272 | test [ebx-40],byte 0x10 |
271 | jnz .continue_3 |
273 | jnz .continue_3 |
272 | @@: |
274 | @@: |
273 | inc [current_progress_value] |
275 | inc [current_progress_value] |
274 | call progress_bar_delete |
276 | call progress_bar_delete |
275 | call del_file |
277 | call del_file |
276 | test eax,eax |
278 | test eax,eax |
277 | jz .continue_1 |
279 | jz .continue_1 |
278 | mov [error_pointer],file_name |
280 | mov [error_pointer],file_name |
279 | call start_error_window_thread |
281 | call start_error_window_thread |
280 | add esp,4 |
282 | add esp,4 |
281 | popa |
283 | popa |
282 | add esp,8+4 |
284 | add esp,8+4 |
283 | ret |
285 | ret |
284 | .continue_1: |
286 | .continue_1: |
285 | dec [recursive_pointer] |
287 | dec [recursive_pointer] |
286 | call return_delete_path |
288 | call return_delete_path |
287 | dec ebp |
289 | dec ebp |
288 | jnz .start |
290 | jnz .start |
289 | 291 | ||
290 | .continue_4: |
292 | .continue_4: |
291 | inc [current_progress_value] |
293 | inc [current_progress_value] |
292 | call progress_bar_delete |
294 | call progress_bar_delete |
293 | call del_file |
295 | call del_file |
294 | test eax,eax |
296 | test eax,eax |
295 | jz .continue_2 |
297 | jz .continue_2 |
296 | call start_error_window_thread |
298 | call start_error_window_thread |
297 | add esp,4 |
299 | add esp,4 |
298 | popa |
300 | popa |
299 | add esp,8+4 |
301 | add esp,8+4 |
300 | ret |
302 | ret |
301 | .continue_2: |
303 | .continue_2: |
302 | clc |
304 | clc |
303 | ret |
305 | ret |
304 | .continue_3: |
306 | .continue_3: |
305 | stc |
307 | stc |
306 | ret |
308 | ret |
307 | ;--------------------------------------------------------------------- |
309 | ;--------------------------------------------------------------------- |
308 | return_delete_path: |
310 | return_delete_path: |
309 | mov edi,file_name |
311 | mov edi,file_name |
310 | @@: |
312 | @@: |
311 | inc edi |
313 | inc edi |
312 | cmp [edi],byte 0 |
314 | cmp [edi],byte 0 |
313 | jne @r |
315 | jne @r |
314 | dec edi |
316 | dec edi |
315 | @@: |
317 | @@: |
316 | dec edi |
318 | dec edi |
317 | cmp [edi],byte '/' |
319 | cmp [edi],byte '/' |
318 | jne @r |
320 | jne @r |
319 | cmp edi,file_name |
321 | cmp edi,file_name |
320 | jbe @f |
322 | jbe @f |
321 | mov [edi],byte 0 |
323 | mov [edi],byte 0 |
322 | @@: |
324 | @@: |
323 | ret |
325 | ret |
324 | ;--------------------------------------------------------------------- |
326 | ;--------------------------------------------------------------------- |
325 | copy_path_2: |
327 | copy_path_2: |
326 | xor eax,eax |
328 | xor eax,eax |
327 | @@: |
329 | @@: |
328 | cld |
330 | cld |
329 | lodsb |
331 | lodsb |
330 | test al,al |
332 | test al,al |
331 | jnz @b |
333 | jnz @b |
332 | mov edi,esi |
334 | mov edi,esi |
333 | mov [edi-1],byte '/' |
335 | mov [edi-1],byte '/' |
334 | mov esi,ebx |
336 | mov esi,ebx |
335 | @@: |
337 | @@: |
336 | cld |
338 | cld |
337 | lodsb |
339 | lodsb |
338 | stosb |
340 | stosb |
339 | test al,al |
341 | test al,al |
340 | jnz @b |
342 | jnz @b |
341 | ret |
343 | ret |
342 | ;--------------------------------------------------------------------- |
344 | ;--------------------------------------------------------------------- |